[INFO] cloning repository https://github.com/favilo/rpi-ws2811-smi-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/favilo/rpi-ws2811-smi-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffavilo%2Frpi-ws2811-smi-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffavilo%2Frpi-ws2811-smi-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 26e4110e7489f4dcc4e43196c7cf80249e0aeb9e
[INFO] fixing favilo/rpi-ws2811-smi-rust against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffavilo%2Frpi-ws2811-smi-rust" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/favilo/rpi-ws2811-smi-rust
[INFO] finished tweaking git repo https://github.com/favilo/rpi-ws2811-smi-rust
[INFO] tweaked toml for git repo https://github.com/favilo/rpi-ws2811-smi-rust written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/favilo/rpi-ws2811-smi-rust on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/favilo/rpi-ws2811-smi-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b8eb142a6cc23aebb469e451886911558eefa722650a4a86af9ad7f63f52a608
[INFO] running `Command { std: "docker" "start" "b8eb142a6cc23aebb469e451886911558eefa722650a4a86af9ad7f63f52a608", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b8eb142a6cc23aebb469e451886911558eefa722650a4a86af9ad7f63f52a608" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b8eb142a6cc23aebb469e451886911558eefa722650a4a86af9ad7f63f52a608", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b8eb142a6cc23aebb469e451886911558eefa722650a4a86af9ad7f63f52a608" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]    Compiling prettyplease v0.2.15
[INFO] [stderr]    Compiling rustix v0.38.20
[INFO] [stderr]    Compiling regex-syntax v0.8.2
[INFO] [stderr]    Compiling memchr v2.6.4
[INFO] [stderr]    Compiling linux-raw-sys v0.4.10
[INFO] [stderr]    Compiling syn v2.0.38
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling home v0.5.5
[INFO] [stderr]    Compiling bindgen v0.68.1
[INFO] [stderr]    Compiling shlex v1.2.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling thiserror v1.0.49
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling anyhow v1.0.75
[INFO] [stderr]    Compiling clang-sys v1.6.1
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking memmap2 v0.9.0
[INFO] [stderr]    Compiling regex-automata v0.4.3
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling c2rust-bitfields-derive v0.18.0
[INFO] [stderr]    Compiling regex v1.10.2
[INFO] [stderr]     Checking c2rust-bitfields v0.18.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.49
[INFO] [stderr]    Compiling rpi_ws2811_smi v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating build.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/c2rust/smileds.rs (41 fixes)
[INFO] [stderr]        Fixed src/c2rust/dma_defs.rs (8 fixes)
[INFO] [stderr]        Fixed src/c2rust/smi_defs.rs (5 fixes)
[INFO] [stderr]        Fixed src/consts.rs (3 fixes)
[INFO] [stderr]        Fixed src/c2rust/rpi_dma_utils.rs (65 fixes)
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:109:16
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&raw mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:110:16
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&raw mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:111:16
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&raw mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&raw mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:131:22
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&mut vc_mem);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&raw mut vc_mem);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:132:22
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&mut smi_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&raw mut smi_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:133:22
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&mut dma_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&raw mut dma_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:134:22
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&mut gpio_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&raw mut gpio_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:321:22
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&raw mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:322:19
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                   ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&raw mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:326:15
[INFO] [stdout]     |
[INFO] [stdout] 326 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 |         led_count,
[INFO] [stdout]     |         ^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 349 |     return tx_buffer.as_mut_ptr();
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:386:46
[INFO] [stdout]     |
[INFO] [stdout] 386 |       let mut tx_offset: *mut uint16_t = &mut *tx_buffer
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 387 | |         .as_mut_ptr()
[INFO] [stdout]     | |_____________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:407:15
[INFO] [stdout]     |
[INFO] [stdout] 407 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 415 |     color_buffer.fill([color_t { packed: 0 }; 512]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |         tx_buffer.as_mut_ptr() as *const libc::c_void,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:430:15
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&mut vc_mem);
[INFO] [stdout]     |               ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&raw mut vc_mem);
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating examples/test.rs from 2021 edition to 2024
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:109:16
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&raw mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:110:16
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&raw mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:111:16
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&raw mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&raw mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:131:22
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&mut vc_mem);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&raw mut vc_mem);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:132:22
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&mut smi_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&raw mut smi_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:133:22
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&mut dma_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&raw mut dma_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:134:22
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&mut gpio_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&raw mut gpio_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:321:22
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&raw mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:322:19
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                   ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&raw mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:326:15
[INFO] [stdout]     |
[INFO] [stdout] 326 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 |         led_count,
[INFO] [stdout]     |         ^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 349 |     return tx_buffer.as_mut_ptr();
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:386:46
[INFO] [stdout]     |
[INFO] [stdout] 386 |       let mut tx_offset: *mut uint16_t = &mut *tx_buffer
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 387 | |         .as_mut_ptr()
[INFO] [stdout]     | |_____________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:407:15
[INFO] [stdout]     |
[INFO] [stdout] 407 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 415 |     color_buffer.fill([color_t { packed: 0 }; 512]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |         tx_buffer.as_mut_ptr() as *const libc::c_void,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:430:15
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&mut vc_mem);
[INFO] [stdout]     |               ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&raw mut vc_mem);
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.34s
[INFO] [stderr] crater-edition-check: rpi_ws2811_smi v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]    Compiling rpi_ws2811_smi v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `env` and `path::PathBuf`
[INFO] [stdout]  --> build.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{env, path::PathBuf};
[INFO] [stdout]   |           ^^^  ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]  --> src/consts.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(rpi4)]
[INFO] [stdout]   |       ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]  --> src/consts.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[cfg(not(rpi4))]
[INFO] [stdout]   |           ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]   --> src/consts.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[cfg(rpi4)]
[INFO] [stdout]    |       ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi23`
[INFO] [stdout]   --> src/consts.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[cfg(rpi23)]
[INFO] [stdout]    |       ^^^^^ help: found config with similar value: `feature = "rpi23"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi23`
[INFO] [stdout]   --> src/consts.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[cfg(not(any(rpi23, rpi4)))]
[INFO] [stdout]    |               ^^^^^ help: found config with similar value: `feature = "rpi23"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]   --> src/consts.rs:46:22
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[cfg(not(any(rpi23, rpi4)))]
[INFO] [stdout]    |                      ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DMA_REG`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! DMA_REG {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DMA_PRIORITY`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | macro_rules! DMA_PRIORITY {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DMA_PRIORITY` and `DMA_REG`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) use {DMA_PRIORITY, DMA_REG};
[INFO] [stdout]    |                 ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `BUS_PHYS_ADDR`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | macro_rules! BUS_PHYS_ADDR {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BUS_PHYS_ADDR`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) use {BUS_PHYS_ADDR, MEM_BUS_ADDR, REG_BUS_ADDR};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `set_bits`
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:218:14
[INFO] [stdout]     |
[INFO] [stdout] 218 | macro_rules! set_bits {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `set_bits`
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub(crate) use {set_bits, REG32};
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::write_volatile`
[INFO] [stdout]   --> src/c2rust/smileds.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::ptr::write_volatile;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]  --> src/consts.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(rpi4)]
[INFO] [stdout]   |       ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]  --> src/consts.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[cfg(not(rpi4))]
[INFO] [stdout]   |           ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]   --> src/consts.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[cfg(rpi4)]
[INFO] [stdout]    |       ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi23`
[INFO] [stdout]   --> src/consts.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[cfg(rpi23)]
[INFO] [stdout]    |       ^^^^^ help: found config with similar value: `feature = "rpi23"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi23`
[INFO] [stdout]   --> src/consts.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[cfg(not(any(rpi23, rpi4)))]
[INFO] [stdout]    |               ^^^^^ help: found config with similar value: `feature = "rpi23"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]   --> src/consts.rs:46:22
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[cfg(not(any(rpi23, rpi4)))]
[INFO] [stdout]    |                      ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DMA_REG`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! DMA_REG {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DMA_PRIORITY`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | macro_rules! DMA_PRIORITY {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DMA_PRIORITY` and `DMA_REG`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) use {DMA_PRIORITY, DMA_REG};
[INFO] [stdout]    |                 ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `BUS_PHYS_ADDR`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | macro_rules! BUS_PHYS_ADDR {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BUS_PHYS_ADDR`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) use {BUS_PHYS_ADDR, MEM_BUS_ADDR, REG_BUS_ADDR};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `set_bits`
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:218:14
[INFO] [stdout]     |
[INFO] [stdout] 218 | macro_rules! set_bits {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `set_bits`
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub(crate) use {set_bits, REG32};
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::write_volatile`
[INFO] [stdout]   --> src/c2rust/smileds.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::ptr::write_volatile;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:120:55
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub unsafe extern "C" fn terminate(mut _sig: c_int) { unsafe {
[INFO] [stdout]     |                                                       ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 128 |         ::core::ptr::write_volatile(REG32!(smi_regs, SMI_CS), 0 as c_int as uint32_t);
[INFO] [stdout]     |                                     ------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] 146 |     let mut divi: c_int = ns / 2 as c_int;
[INFO] [stdout] 147 |     smi_cs = REG32!(smi_regs, SMI_CS) as *mut SMI_CS_REG;
[INFO] [stdout]     |              ------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 148 |     smi_l = REG32!(smi_regs, SMI_L) as *mut SMI_L_REG;
[INFO] [stdout]     |             ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 149 |     smi_a = REG32!(smi_regs, SMI_A) as *mut SMI_A_REG;
[INFO] [stdout]     |             ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 150 |     smi_d = REG32!(smi_regs, SMI_D) as *mut SMI_D_REG;
[INFO] [stdout]     |             ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 151 |     smi_dmc = REG32!(smi_regs, SMI_DMC) as *mut SMI_DMC_REG;
[INFO] [stdout]     |               ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 152 |     smi_dsr = REG32!(smi_regs, SMI_DSR0) as *mut SMI_DSR_REG;
[INFO] [stdout]     |               -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 153 |     smi_dsw = REG32!(smi_regs, SMI_DSW0) as *mut SMI_DSW_REG;
[INFO] [stdout]     |               -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 154 |     smi_dcs = REG32!(smi_regs, SMI_DCS) as *mut SMI_DCS_REG;
[INFO] [stdout]     |               ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 155 |     smi_dca = REG32!(smi_regs, SMI_DCA) as *mut SMI_DCA_REG;
[INFO] [stdout]     |               ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 156 |     smi_dcd = REG32!(smi_regs, SMI_DCD) as *mut SMI_DCD_REG;
[INFO] [stdout]     |               ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 192 |     if REG32!(clk_regs, CLK_SMI_DIV).read_volatile() != (divi << 12) as uint32_t {
[INFO] [stdout]     |        ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 193 |         ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile())
[INFO] [stdout]     |           ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 197 |         while ((REG32!(clk_regs, CLK_SMI_CTL) as *mut uint32_t).read_volatile() & (1 << 7)) != 0 {}
[INFO] [stdout]     |                 ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 199 |         ((REG32!(clk_regs, CLK_SMI_DIV) as *mut *mut uint32_t).read_volatile())
[INFO] [stdout]     |           ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 202 |         ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile())
[INFO] [stdout]     |           ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 205 |         while ((REG32!(clk_regs, CLK_SMI_CTL) as *mut uint32_t).read_volatile() & (1 << 7)) == 0 {}
[INFO] [stdout]     |                 ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:120:55
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub unsafe extern "C" fn terminate(mut _sig: c_int) { unsafe {
[INFO] [stdout]     |                                                       ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 128 |         ::core::ptr::write_volatile(REG32!(smi_regs, SMI_CS), 0 as c_int as uint32_t);
[INFO] [stdout]     |                                     ------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] 146 |     let mut divi: c_int = ns / 2 as c_int;
[INFO] [stdout] 147 |     smi_cs = REG32!(smi_regs, SMI_CS) as *mut SMI_CS_REG;
[INFO] [stdout]     |              ------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUS_REG_BASE` is never used
[INFO] [stdout]   --> src/consts.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) const BUS_REG_BASE: *mut c_void = 0x7E000000 as *mut c_void;
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CHAN_A` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) const DMA_CHAN_A: usize = 10;
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CHAN_B` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) const DMA_CHAN_B: usize = 11;
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_PWM_DREQ` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) const DMA_PWM_DREQ: usize = 5;
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SPI_TX_DREQ` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) const DMA_SPI_TX_DREQ: usize = 6;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 148 |     smi_l = REG32!(smi_regs, SMI_L) as *mut SMI_L_REG;
[INFO] [stdout]     |             ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SPI_RX_DREQ` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) const DMA_SPI_RX_DREQ: usize = 7;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_BASE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) const DMA_BASE: *const c_void = PHYS_REG_BASE.wrapping_offset(0x007000);
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CS` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) const DMA_CS: usize = 0x00;
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CONBLK_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) const DMA_CONBLK_AD: usize = 0x04;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_TI` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) const DMA_TI: usize = 0x08;
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SRCE_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const DMA_SRCE_AD: usize = 0x0c;
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_DEST_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) const DMA_DEST_AD: usize = 0x10;
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 149 |     smi_a = REG32!(smi_regs, SMI_A) as *mut SMI_A_REG;
[INFO] [stdout]     |             ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_TXFR_LEN` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const DMA_TXFR_LEN: usize = 0x14;
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_STRIDE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const DMA_STRIDE: usize = 0x18;
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_NEXTCONBK` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const DMA_NEXTCONBK: usize = 0x1c;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_DEBUG` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const DMA_DEBUG: usize = 0x20;
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_ENABLE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) const DMA_ENABLE: usize = 0xff0;
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 150 |     smi_d = REG32!(smi_regs, SMI_D) as *mut SMI_D_REG;
[INFO] [stdout]     |             ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 151 |     smi_dmc = REG32!(smi_regs, SMI_DMC) as *mut SMI_DMC_REG;
[INFO] [stdout]     |               ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CB_DEST_INC` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) const DMA_CB_DEST_INC: usize = 1 << 4;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SRCE_DREQ` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:30:18
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) const DMA_SRCE_DREQ: usize = 1 << 10;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR1` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const SMI_DSR1: usize = 0x18; // Read settings device 1
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 152 |     smi_dsr = REG32!(smi_regs, SMI_DSR0) as *mut SMI_DSR_REG;
[INFO] [stdout]     |               -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 153 |     smi_dsw = REG32!(smi_regs, SMI_DSW0) as *mut SMI_DSW_REG;
[INFO] [stdout]     |               -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 154 |     smi_dcs = REG32!(smi_regs, SMI_DCS) as *mut SMI_DCS_REG;
[INFO] [stdout]     |               ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 155 |     smi_dca = REG32!(smi_regs, SMI_DCA) as *mut SMI_DCA_REG;
[INFO] [stdout]     |               ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 156 |     smi_dcd = REG32!(smi_regs, SMI_DCD) as *mut SMI_DCD_REG;
[INFO] [stdout]     |               ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 192 |     if REG32!(clk_regs, CLK_SMI_DIV).read_volatile() != (divi << 12) as uint32_t {
[INFO] [stdout]     |        ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 193 |         ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile())
[INFO] [stdout]     |           ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 197 |         while ((REG32!(clk_regs, CLK_SMI_CTL) as *mut uint32_t).read_volatile() & (1 << 7)) != 0 {}
[INFO] [stdout]     |                 ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 199 |         ((REG32!(clk_regs, CLK_SMI_DIV) as *mut *mut uint32_t).read_volatile())
[INFO] [stdout]     |           ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 202 |         ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile())
[INFO] [stdout]     |           ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 |         (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32
[INFO] [stdout]     |          ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/c2rust/smileds.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | ) { unsafe {
[INFO] [stdout]     |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 205 |         while ((REG32!(clk_regs, CLK_SMI_CTL) as *mut uint32_t).read_volatile() & (1 << 7)) == 0 {}
[INFO] [stdout]     |                 ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW1` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) const SMI_DSW1: usize = 0x1c; // Write settings device 1
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR2` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const SMI_DSR2: usize = 0x20; // Read settings device 2
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW2` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const SMI_DSW2: usize = 0x24; // Write settings device 2
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR3` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const SMI_DSR3: usize = 0x28; // Read settings device 3
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW3` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const SMI_DSW3: usize = 0x2c; // Write settings device 3
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_FD` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) const SMI_FD: usize = 0x40; // FIFO debug
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_18_BITS` is never used
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:229:18
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub(crate) const SMI_18_BITS: usize = 2;
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_9_BITS` is never used
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub(crate) const SMI_9_BITS: usize = 3;
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]    --> src/c2rust/rpi_dma_utils.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |         i;
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(path_statements)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]    --> src/c2rust/rpi_dma_utils.rs:645:9
[INFO] [stdout]     |
[INFO] [stdout] 645 |         i;
[INFO] [stdout]     |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:109:16
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&raw mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:110:16
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&raw mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:111:16
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&raw mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&raw mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:131:22
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&mut vc_mem);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&raw mut vc_mem);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:132:22
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&mut smi_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&raw mut smi_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:133:22
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&mut dma_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&raw mut dma_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:134:22
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&mut gpio_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&raw mut gpio_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:321:22
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&raw mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:322:19
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                   ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&raw mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:326:15
[INFO] [stdout]     |
[INFO] [stdout] 326 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 |         led_count,
[INFO] [stdout]     |         ^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 349 |     return tx_buffer.as_mut_ptr();
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:386:46
[INFO] [stdout]     |
[INFO] [stdout] 386 |       let mut tx_offset: *mut uint16_t = &mut *tx_buffer
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 387 | |         .as_mut_ptr()
[INFO] [stdout]     | |_____________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:407:15
[INFO] [stdout]     |
[INFO] [stdout] 407 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 415 |     color_buffer.fill([color_t { packed: 0 }; 512]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |         tx_buffer.as_mut_ptr() as *const libc::c_void,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:430:15
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&mut vc_mem);
[INFO] [stdout]     |               ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&raw mut vc_mem);
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUS_REG_BASE` is never used
[INFO] [stdout]   --> src/consts.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) const BUS_REG_BASE: *mut c_void = 0x7E000000 as *mut c_void;
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CHAN_A` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) const DMA_CHAN_A: usize = 10;
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CHAN_B` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) const DMA_CHAN_B: usize = 11;
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_PWM_DREQ` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) const DMA_PWM_DREQ: usize = 5;
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SPI_TX_DREQ` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) const DMA_SPI_TX_DREQ: usize = 6;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SPI_RX_DREQ` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) const DMA_SPI_RX_DREQ: usize = 7;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_BASE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) const DMA_BASE: *const c_void = PHYS_REG_BASE.wrapping_offset(0x007000);
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CS` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) const DMA_CS: usize = 0x00;
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CONBLK_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) const DMA_CONBLK_AD: usize = 0x04;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_TI` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) const DMA_TI: usize = 0x08;
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SRCE_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const DMA_SRCE_AD: usize = 0x0c;
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_DEST_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) const DMA_DEST_AD: usize = 0x10;
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_TXFR_LEN` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const DMA_TXFR_LEN: usize = 0x14;
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_STRIDE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const DMA_STRIDE: usize = 0x18;
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_NEXTCONBK` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const DMA_NEXTCONBK: usize = 0x1c;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_DEBUG` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const DMA_DEBUG: usize = 0x20;
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_ENABLE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) const DMA_ENABLE: usize = 0xff0;
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CB_DEST_INC` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) const DMA_CB_DEST_INC: usize = 1 << 4;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SRCE_DREQ` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:30:18
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) const DMA_SRCE_DREQ: usize = 1 << 10;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR1` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const SMI_DSR1: usize = 0x18; // Read settings device 1
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW1` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) const SMI_DSW1: usize = 0x1c; // Write settings device 1
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR2` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const SMI_DSR2: usize = 0x20; // Read settings device 2
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW2` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const SMI_DSW2: usize = 0x24; // Write settings device 2
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR3` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const SMI_DSR3: usize = 0x28; // Read settings device 3
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW3` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const SMI_DSW3: usize = 0x2c; // Write settings device 3
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_FD` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) const SMI_FD: usize = 0x40; // FIFO debug
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_18_BITS` is never used
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:229:18
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub(crate) const SMI_18_BITS: usize = 2;
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_9_BITS` is never used
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub(crate) const SMI_9_BITS: usize = 3;
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]    --> src/c2rust/rpi_dma_utils.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |         i;
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(path_statements)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]    --> src/c2rust/rpi_dma_utils.rs:645:9
[INFO] [stdout]     |
[INFO] [stdout] 645 |         i;
[INFO] [stdout]     |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:109:16
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&raw mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:110:16
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&raw mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:111:16
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&raw mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&raw mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:131:22
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&mut vc_mem);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&raw mut vc_mem);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:132:22
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&mut smi_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&raw mut smi_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:133:22
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&mut dma_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&raw mut dma_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:134:22
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&mut gpio_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&raw mut gpio_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:321:22
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&raw mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:322:19
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                   ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&raw mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:326:15
[INFO] [stdout]     |
[INFO] [stdout] 326 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 |         led_count,
[INFO] [stdout]     |         ^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 349 |     return tx_buffer.as_mut_ptr();
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:386:46
[INFO] [stdout]     |
[INFO] [stdout] 386 |       let mut tx_offset: *mut uint16_t = &mut *tx_buffer
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 387 | |         .as_mut_ptr()
[INFO] [stdout]     | |_____________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:407:15
[INFO] [stdout]     |
[INFO] [stdout] 407 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 415 |     color_buffer.fill([color_t { packed: 0 }; 512]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |         tx_buffer.as_mut_ptr() as *const libc::c_void,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:430:15
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&mut vc_mem);
[INFO] [stdout]     |               ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&raw mut vc_mem);
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rpi_ws2811_smi` (lib) due to 18 previous errors; 61 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `rpi_ws2811_smi` (lib test) due to 18 previous errors; 61 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "b8eb142a6cc23aebb469e451886911558eefa722650a4a86af9ad7f63f52a608", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b8eb142a6cc23aebb469e451886911558eefa722650a4a86af9ad7f63f52a608", kill_on_drop: false }`
[INFO] [stdout] b8eb142a6cc23aebb469e451886911558eefa722650a4a86af9ad7f63f52a608
